core: Skip an unnecessary unlink() call
authorColin Walters <walters@verbum.org>
Fri, 18 Nov 2011 14:41:36 +0000 (09:41 -0500)
committerColin Walters <walters@verbum.org>
Fri, 18 Nov 2011 14:41:36 +0000 (09:41 -0500)
src/libostree/ostree-repo.c

index d6c9ecd5575d64a3c00724cadf626a650425bd6a..1a1f10b21fafba354d4015f33b300252f15b26ff 100644 (file)
@@ -607,21 +607,23 @@ write_gvariant_to_tmp (OstreeRepo  *self,
       ot_util_set_error_from_errno (error, errno);
       goto out;
     }
+  g_free (tmp_name);
+  tmp_name = NULL;
 
   ret = TRUE;
   *out_tmpname = ot_gfile_new_for_path (dest_name);
   *out_checksum = checksum;
   checksum = NULL;
  out:
-  /* Unconditionally unlink; if we suceeded, there's a new link, if not, clean up. */
-  (void) unlink (tmp_name);
+  if (tmp_name)
+    (void) unlink (tmp_name);
+  g_free (tmp_name);
   if (fd != -1)
     close (fd);
   if (checksum)
     g_checksum_free (checksum);
   if (serialized != NULL)
     g_variant_unref (serialized);
-  g_free (tmp_name);
   g_free (dest_name);
   g_clear_object (&stream);
   return ret;